"""
步骤：
0.导包
1.创建日志器对象
2.设置日志打印级别
3.创建处理器对象
  创建 输出到控制台 处理器对象
  创建 输出到日志文件 处理器对象
4. 创建日志信息格式
5. 将日志信息格式设置给处理器
   设置给 控制台处理器
   设置给 日志文件处理器
6.将日志器添加处理器
   给日志对象 添加 控制台处理器
   给日志对象 添加 日志文件处理器
7. 打印日志
"""
import logging.handlers

# 1.创建日志器对象
logger = logging.getLogger()

# 2.设置日志打印级别
logger.setLevel(logging.DEBUG)
# logging.DEBUG 调试级别
# logging.INFO 信息级别
# logging.WARNING 警告级别
# logging.ERROR 错误级别
# logging.CRITICAL  #严重错误级别

# 3.1创建 输出到控制台 处理器对象
st = logging.StreamHandler()
# 3.2 创建 输出到日志文件 处理器对象
fh = logging.handlers.TimedRotatingFileHandler("log_homework.log", when='midnight',interval=2,backupCount=3,encoding='utf-8')
# when 字符串，指定日志切分间隔时间的单位。midnight: 凌晨 12点
#interval 是间隔时间的单位的个数，指等待多少个when 后 继续进行日志记录
#backupCount 是保留日志文件的个数

#4. 创建日志信息格式
formatter = logging.Formatter("%(asctime)s %(levelname)s [%(name)s] [%(filename)s(%(funcName)s:%(lineno)d)] - %(message)s")
# 这是晚自习作业题的日志信息
# 5.1 日志信息格式 设置给 控制台处理器
st.setFormatter(formatter)

# 5.2 日志信息格式 设置给 日志文件处理器
fh.setFormatter(formatter)

# 6.1 把控制台对象添加到日志器对象
logger.addHandler(st)
# 6.2 把日志文件对象添加到日志器对象
logger.addHandler(fh)

# 7 打印日志
for num in range(101):
    logging.warning(f"数字={num}")